package com.hanamaki.oop.demo08;

/**
 * 抽象类：？
 * abstract 修饰符 可以用来修饰方法 也可以用来修饰 类  如果修饰方法就是一个 抽象方法 如果修饰类  就是一个 抽象类
 * 【注意：】：抽象方法只能存在于抽象类中
 * 1. 抽象类中可以没有抽象方法
 * 2. 抽象类不能使用  new 关键字来进行初始化  只能让其 继承的子类来实例化
 * 3. 在抽象类中，只有方法的声明，没有方法体，方法体 要让继承它的子类去实现
 */

/**
 * 这是一个 抽象类
 * 抽象类中 都是抽象方法，而且抽象方法没有方法体
 */
public abstract class AbstractTest {


    /* 在抽象类中  可以写属性 */
    String name;

    /* 在 抽象类中 可以写 普通方法 */
    public void test() {
        System.out.println("test");
    }


    /* 抽象方法只有方法的 声明  */
    /* 如果想要使用  抽象方法 来实现一个功能，要去继承这个抽象类
    通过子类来实现  如果继承抽象类的子类不想实现抽象类中的抽象方法
    要将子类也要添加abstract修饰符  让其子类也是一个抽象类 */
    /* 让子子类来实现 */

    /**
     * 这是一个约束（规范） 我希望有人帮我实现
     *
     * @param a
     * @param b
     */
    public abstract void add(int a, int b);


}
